モジュール詳細:ケロケロプログラミング

これは……ケログラミング?

このモジュールには、Dパッド(4つの方向矢印と真ん中のボタンからなる)、小さな入力ディスプレー、スタートとリセットのボタン、そして大きな『フロッガー』ゲームがある。

下から上に、以下の要素が表示されている。

  • カエルが一匹いる草むら(スタート地点)。あなたはこのカエルを操作する。
  • 車が沢山通る大通り(最初は停止状態)。
  • 二つ目の草むら(中間地点)。
  • 丸太とカメの流れる川(最初は停止状態)。
  • 穴が空いている最後の草むら(ゴール地点)。

目標は、大通りの交通をすり抜け、川の丸太やカメに跳び乗りながら、カエルが草むらの一番下から一番上のゴール地点のひとつに移動するように、カエルの動きをあらかじめプログラムしておくことである。

カエルは上、右、下、左に動く(Dパッドの方向ボタン)か、待機(Dパッドの中央ボタン)するようにプログラムできる。カエルをどの方向に動かしても、指定された方向に1ユニットジャンプする。

1ユニットの長さは、モジュールの上部と右側に短い線で表記されている。それぞれの草むらの幅は1ユニット、道路と川の幅はそれぞれ4ユニット、ゴール地点の幅は1ユニットである。

車、カメ、カエルの幅は1ユニットである。丸太とカメの群れの幅は1ユニットであり、数ユニットの長さを持つ。大通りの中で1車線は、車ではなく長さ2ユニットのトラックが走行している。

カエルが丸太やカメの上に跳び乗った時、カエルは乗った丸太やカメと同じ速度で移動する。

プログラム実行中は、移動オブジェクト(車、トラック、丸太、カメ)は横方向に等速で移動(ゲーム画面の端に到達した際はループ)するが、カエル自身の動きは整数秒ごとに瞬時に発生する。最初のコマンドは1秒後に発生する。

プログラムはどうやったら止められる?

以下の状況が発生した場合、モジュールにはミスが記録され、リセットされる。

  • カエルが車やトラックに轢かれて死ぬ。
    • 具体的には、カエルと車やトラックの間で、一定量ユニットが重なる。
  • カエルが川に落ちて死ぬ。
    • 具体的には、カエルと丸太やカメの間で、一定量ユニットが重なっていない。
    • カエルは直接川に跳び込んだだけで死んでしまう。
    • また、カエルが乗っている丸太やカメから押し出されて死ぬこともある。カエルが丸太やカメの上に乗っており、画面の端に達した場合、丸太やカメはループするが、カエルはループしない。そのため、カエルが押し出されて川に落ちてしまうことがある。
  • カエルが退屈のあまり死ぬ。
    • 具体的には、カエルが新しい位置にジャンプすることなく、プログラム内で5ステップ実行された際に発生する(このときカエルはカメや丸太の上を移動しているかもしれないが、この文脈では移動とはみなされない)。
  • カエルがゴールの水場ではなく一番上の草むらを踏む。
  • カエルがゲーム画面の端へ跳ぶ(例えば、左端の列からさらに左に跳ぶ)。
  • プログラムに指示が残っていない。この場合、カエルはすぐに殺されてしまう。

ドクロと交差した骨はカエルの死亡地点を表示する。「R」ボタンでモジュールを初期状態にリセットする。

移動オブジェクトの移動方向と位置

丸太は川にあり、常に右へ移動する。

カメは川におり、常に左へ移動する。

車は大通りを走り、いずれかの方向に進む。車は向いている方向に進む。

すべての移動オブジェクトは表示された位置から開始する。

車の速度を特定

道路車線は下から上へ1-4の番号が付けられている。

バッテリーの個数(1-4の範囲外の場合は、4を足し引きする)を取得する。この車線上にある車は、プログラム上で1ステップごとに10分の1ユニット移動する。

シリアルナンバーの前半三つの文字に対して、英字はアルファベット上の位置の数字に変換し、0は10とする。残りの三つの車線上にある車は、(下から上に)1ステップごとに10分の[得た値]ユニット移動する。

丸太とカメの速度を特定

川のレーンは、下から上へ1-4の番号が付けられている。

インジケーターの個数(1-4の範囲外の場合は、4を足し引きする)を取得する。このレーン上にあるオブジェクトは、プログラム上で1ステップごとに10分の1ユニット移動する。

シリアルナンバーの後半三つの文字に対して、英字はアルファベット上の位置の数字に変換し、0は10とする。残りの三つのレーン上にあるオブジェクトは、(下から上に)1ステップごとに10分の[得た値]ユニット移動する。

モジュールを解除するには?

画面上部にある3つのゴールのいずれかにカエルを移動させると、プログラムは停止し、モジュールは解除される。ゴールは左端を0として、X座標が1、3、5の位置にあるが、ゴールの左右に最大10分の5ユニットのゆとりを持った状態でカエルは安全にジャンプすることができる。